#ifndef GRALABY_HPP_INCLUDED
#define GRALABY_HPP_INCLUDED

#include <SFML/Graphics.hpp>

#include "../game_state.hpp"
#include "../singleton.hpp"

struct Gralabber {
	sf::Sprite sprite;
	sf::String name;
};

class Gralaby: public GameState, public Singleton<Gralaby> {
	friend class Singleton<Gralaby>;
	public:
		void init(Engine *engine);
		void cleanup();
		
		void pause();
		void resume();
		
		void processEvent(Engine *engine, PlayerEvent& event);
		void update(Engine *engine);
		void draw(Engine *engine);
		
	protected:
		Gralaby();
		~Gralaby();
		
		int getMap(int x, int y);
		
		sf::Sprite background;
		std::map<int, Gralabber> gralabbers;
		
		sf::Clock clock;
		int mapWidth, mapHeight;
		int *map;

};

#endif // GAME_HPP_INCLUDED
